A proxy server, also referred to simply as a proxy, is an application or device that provides access to other external networks (collectively referred to herein as the “Internet”) while appearing to the Internet as a single computer system. For example, current proxy technologies allow multiple personal computers (PCs) connected to a local area network (LAN) to access the Internet through an Internet Service Provider (ISP) via the proxy server. Only the proxy server is visible to the Internet, i.e., TCP/IP packets entering the Internet from the proxy server all appear to have a single IP source address and all communications from the Internet to the LAN are addressed to a single IP destination address regardless of the location on the LAN to which they are directed.
FIG. 1 illustrates a schematic diagram of a client computer 102 accessing the Internet 104 through a proxy server 106 according to the prior art. The client computer 102, running an application program such as a web browser, may communicate with a configuration server 108 that provides proxy settings in the home LAN environment. Alternatively, the settings may be made manually by configuring the web browser on the client computer 102. When a local configuration server approach is used, the proxy settings are stored in a file referred to as a proxy auto-configuration file which is typically stored on the configuration server 108. The client computer 102 then uses the retrieved proxy settings to locate and access the proxy server 106. The proxy server 106 receives requests from the client computer 102 on a Local Area Network (LAN) to communicate with the Internet 104 external to the LAN. The proxy server 106 evaluates these requests and determines which of the communication requests to pass on to the web server 104 or Internet 110 where the remote server(s) are located. If a communication request is approved, the proxy server 106 communicates with the Internet 104 on behalf of the client computer 102. The proxy server 106 does so by relaying requests from the client computer 102 to the Internet 104 and returning responses back to the client computer 102. In this manner, the proxy server 106 provides the illusion that the client computer 102 is communicating directly with the Internet 104. The proxy server 106 therefore acts as a barrier between the client computer 102 and the Internet 104 by presenting only a single network address to external sites. By acting as a buffer, the proxy server 106 thus provides some measure of security to the computers on the LAN by protecting their specific network identities while still providing access to the Internet 104.
Conventional proxy servers require each client computer's application program, such as an Internet browser program, to be configured to recognize and use a local proxy server. Specifically, client programs need to know how to contact the local proxy server with a communication request, and how to format the communication request in order to correctly identify the remote server with which communication is requested. Client computer's application programs that do not include proxy configuration capabilities may not make use of such proxy servers.
Another class of proxy servers, transparent proxy servers, can provide proxy services to client computers not configured to use a proxy. Such servers intercept packets from the client and provide proxy services unbeknownst to the client, hence the term “transparent” proxy server. Transparent proxy servers do not address the class of clients supported by this invention because these clients are attempting to communicate with a configuration server to obtain proxy settings. A transparent proxy server would not satisfy the request for configuration settings and thus would fail to support this class of clients.
However, a client computer's web browser configured to access a specific proxy server on a home network may be unable to access the Internet when that client computer is connected to another network different from its home network. For example, a laptop computer, also known as a mobile computer, having its web browser configured to access a specific proxy while connected to a home network may not be able to access the Internet when it is plugged into a foreign network, such as at a hotel or at the office. Unless the user manually reconfigures the web browser to use a locally accessible proxy, the web browser may fail to communicate beyond the LAN.
The prior art allows mobile computers to send packets through routers without Internet Protocol (IP) address reconfiguration of the computer because the computer can be configured to always obtain an appropriate IP address at start-up from a Dynamic Host Configuration Protocol (DHCP) server associated with the LAN to which the mobile computer is connected. Furthermore, Network Address Translation (NAT) allows a LAN to have a large number of IP addresses which are exclusively assigned to the computers on the LAN and which are not visible beyond the LAN. However, neither DHCP nor NAT address the problems of web browser configurations that conflict with a local network configuration. The prior art allows a mobile computer to connect to any network, but its web browser may remain inoperative for some or all web proxy configuration unless correctly reconfigured by an adept user.
Accordingly, there is a need for a mechanism for configuring a computer to interact with a proxy server on any network to which a computer may find itself connected.